perm filename COMMON[F86,JMC]1 blob sn#827425 filedate 1986-11-02 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00010 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	common[f86,jmc]		Common sense database
C00003 00003	missionaries and cannibals, boats
C00004 00004	traffic lights and towers
C00005 00005	Dogs and trash cans:
C00006 00006	air travel
C00007 00007	buying and selling
C00008 00008	getting information
C00009 00009	taxonomy
C00011 00010	Blocks world:
C00012 ENDMK
C⊗;
common[f86,jmc]		Common sense database

Some concrete problems:

missionaries and cannibals, boats

In what form should the facts about using a boat be in a general
common sense database.

place x ∧ place y ∧ connected(x,y,water) ⊃ possible using(boat,go(x,y))

⊃  maybe ∃a b.action a ∧ is(a,going) ∧ origin a = x ∧ dest a = y ∧ vehicle a = b
∧ boat b.

Is there a boat that is used for going from  x  to  y?

storms, leaks, and other obstacles

boats ⊂ vehicles
traffic lights and towers

conceptual towers and real towers
Dogs and trash cans:
air travel

buying and selling

getting information

Normally a person knows the relevant facts.
taxonomy

Taxonomy will be a small part of the common sense database.
Some other AI systems give taxonomy, under the name ``inheritance
hierarchy'' a large place, and indeed there are difficulties in
getting it right.

``A boat is a vehicle'' is an example of a taxonomic fact.
We can refer to Linnaean taxonomy as one level, e.g. ``birds
are animals'' but not ``"animal" is a concept''.
Our taxonomy should be multi-level.

It looks like we should write

(1)	boat < vehicle

where  boat  and  vehicle  are names of concepts.  We will have
set-of(boat)  as a name for the set of boats and (1) will have
the consequence

(2)	set-of(boat) ⊂ set-of(vehicle).

Is there anything special about extending taxonomy to relationships?

(3)	husband < spouse.

Blocks world:

cause(move(x,l),at(x,l))

cause(move(x,l),loc x = l)

effect(move(x,l)) = (loc x = l)

meaning(loc x,c1) = country x

meaning(loc x,c2) = galaxy x

meaning(loc x,c3) = <atom x is attached to>


There are two possibilities, but they may be compatible.

does(person,move(x,l))

doer(<action>) = <person>

action(<action>) = move(x,l)

occurs(<action>,s)